home *** CD-ROM | disk | FTP | other *** search
/ Robotics & Artificial Int…3 (Professional Edition) / Robotics & Artificial Intelligence Tools 2003 (Professional Edition).iso / robot software / webots-kros-1.0.1_setup.exe / {app} / kteam / etc / Makefile_Common < prev    next >
Makefile  |  2002-05-08  |  5KB  |  140 lines

  1. ##############################################################
  2. #
  3. # Makefile master for the Source Navigator / GNU Compiler Env.
  4. #
  5. # Copyright (C) 2000 K-TEAM S.A.
  6. #
  7. ##############################################################
  8.  
  9.  
  10. ##############################################################
  11. # Variables that user must no change without possible disrupts
  12. ##############################################################
  13.  
  14. BIOS=$(hdw_pack)lib/bios.bin
  15. mdscript=$(hdw_pack)etc/module.ld
  16. rmscript=$(hdw_pack)etc/rom.ld
  17. dwscript=$(hdw_pack)etc/download.ld
  18. dbscript=$(hdw_pack)etc/debug.ld
  19.  
  20. # In case the distribution is not the builtin one in gcc, tell
  21. # the compiler where to find everything:
  22.  
  23. EXE_SYS=-B$(prefix)lib/gcc-lib/
  24. LIB_SYS=-L$(hdw_pack)lib \
  25.         -L$(prefix)lib/gcc-lib/$(exeprefix)/$(gccversion) \
  26.         -L$(prefix)lib \
  27.         -L$(sft_pack)lib \
  28.         -L$(sft_pack)ktdebug/lib \
  29.         -L$(sft_pack)glue/lib \
  30.         -L$(sft_pack)kbus/lib
  31. INC_SYS=-I$(hdw_pack)include \
  32.         -I$(prefix)lib/gcc-lib/$(exeprefix)/$(gccversion)/include \
  33.         -I$(prefix)include/g++-3 \
  34.         -I$(sft_pack)include \
  35.         -I$(sft_pack)ktdebug/include \
  36.         -I$(sft_pack)kbus/include
  37.  
  38. # Object Format Converter:
  39. # Used cause PIC is supported only for elf output
  40. # it's impossible to make direct srec conversion
  41. CONVERT    = $(prefix)/bin/$(exeprefix)-objcopy
  42.  
  43. # Archiver Options:
  44. #          -r: replace files in archive if already present
  45. #          -s: generate file symbol table
  46. ARFLAGS = rs
  47. AR    = $(prefix)/bin/$(exeprefix)-ar
  48.  
  49. # Ranlib Options:
  50. RANLIB    = $(prefix)/bin/$(exeprefix)-ranlib
  51.  
  52. # Listing Options:
  53. #           -D: disassemble all sections of the files
  54. #           -x: show all the headers
  55. LIST    = $(prefix)/bin/$(exeprefix)-objdump --disassemble-zeroes -Dx
  56.  
  57.  
  58. # Assembler Options:
  59. # Play around needed to implement ASFLAGS -> CC_ASFLAGS and LDFLAGS
  60. comma:= ,
  61. empty:=
  62. space:= $(empty) $(empty)
  63. ifeq ($(strip $(ASFLAGS)),)
  64. CC_ASFLAGS = -Wa,$(subst  $(space),$(comma),$(strip $(ASFLAGS)))
  65. endif
  66.  
  67. # Linker Options:
  68. ifeq ($(strip $(LDFLAGS)),)
  69. MORELDFLAGS = ,$(subst  $(space),$(comma),$(strip $(LDFLAGS)))
  70. endif
  71. LDFLAGS_MOD  = $(LIB_SYS) -Wl,-s,-T$(mdscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  72. LDFLAGS_ROM  = $(LIB_SYS) -Wl,-s,-T$(rmscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  73. LDFLAGS_SREC = $(LIB_SYS) -Wl,-s,-T$(dwscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  74. LDFLAGS_DBG  = $(LIB_SYS) -Wl,-T$(dbscript),$(hdw_pack)lib/crt0.o$(MORELDFLAGS)
  75.  
  76. # Compiler Options:
  77. CCDEBUG      =-g -DKROSDBG
  78. CCOPT      =-msoft-float -m68332 -nostdlib -ffreestanding $(CCPIC)
  79. CPPFLAGS  =-I$(includedir) 
  80. ALL_CFLAGS=$(CPPFLAGS) $(EXE_SYS) $(INC_SYS) $(CC_ASFLAGS) $(CCOPT) $(CCUSERFLAGS) $(CFLAGS)
  81. CC      =$(prefix)bin/$(exeprefix)-gcc
  82. CXX      =$(prefix)bin/$(exeprefix)-g++
  83. AS        =$(prefix)bin/$(exeprefix)-as
  84.  
  85. # Administator Options:
  86. DWNLD    =$(prefix)java/bin/java -cp $(prefix)lib/KheperaTerminal.jar KheperaTerminal.Main -port $(port) -speed $(speed) -upload
  87. COPY    =cp
  88. SPECIAL =
  89.  
  90. ##################
  91. # Implicit Rules #
  92. ##################
  93.  
  94. .SUFFIXES:
  95.  
  96. %.dwn: $(bindir)%.s37
  97.     @echo Downloading $?
  98.     @$(DWNLD) $?
  99.  
  100. $(bindir)%.s37: $(objdir)%.o
  101.     @echo Linking\ \ \  $(filter %.o,$^) into $@ 
  102.     @$(LINKER) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) $(LDFLAGS_SREC) -o $@ $(filter %.o,$^) $(LOADLIBES)
  103.     @$(CONVERT) -I elf32-m68k -O srec $@
  104.  
  105. $(bindir)%.dbg: $(objdir)%.o
  106.     @echo Linking $(filter %.o,$^) into $@ 
  107.     @$(LINKER) $(CCDEBUG) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) $(LDFLAGS_DBG) -o $@ $(filter %.o,$^) $(LOADLIBES)
  108.  
  109. $(bindir)%.rom: $(objdir)%.o
  110.     @echo Linking $(filter %.o,$^) into $@ 
  111.     @$(LINKER) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) $(LDFLAGS_ROM) -o $@ $(filter %.o,$^) $(LOADLIBES)
  112.     @$(CONVERT) -I elf32-m68k -O binary $@
  113.     @echo Building Rom using BIOS file $(firstword $(filter %.BIN,$^) $(filter %.bin,$^) $(BIOS))
  114.     @cat  $(firstword $(filter %.BIN,$^) $(filter %.bin,$^) $(BIOS)) $@ > $(bindir)tmp
  115.     @mv $(bindir)tmp $@
  116.  
  117. $(libdir)%.a: 
  118.     @echo Building library $@ from $(filter %.o,$^) 
  119.     @$(AR) $(ARFLAGS) $@ $(filter %.o,$^) 
  120.  
  121. $(asmdir)%.lst: $(bindir)%.dbg
  122.     @echo Generating assembler listing for $< into $@ 
  123.     @$(LIST) $< > $@ 
  124.  
  125. $(asmdir)%.s: $(srcdir)%.cc
  126.     @echo Compiling\  $< into $@ 
  127.     @$(CXX) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  128.  
  129. $(asmdir)%.s: $(srcdir)%.c
  130.     @echo Compiling\  $< into $@ 
  131.     @$(CC) $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  132.  
  133. $(srcdir)%.d: $(srcdir)%.c
  134.     @echo Finding dependencies into $<
  135.     @$(CC) -MM $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  136.     
  137. $(srcdir)%.d: $(srcdir)%.cc
  138.     @echo Finding dependencies into $<
  139.     @$(CC) -MM $(SPECIAL) $(OPTS) $(ALL_CFLAGS) -S -o $@ $<
  140.